package com.ruoyi.teaching.mapper;

import java.util.List;
import java.util.stream.Stream;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.teaching.domain.CourseDesign;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 课程设计Mapper接口
 *
 * @author sunshine
 * @date 2024-01-26
 */
public interface CourseDesignMapper extends BaseMapper<CourseDesign>
{


    /**
     * 查询课程设计列表
     *
     * @param courseDesign 课程设计
     * @return 课程设计集合
     */
    public List<CourseDesign> selectCourseDesignList(CourseDesign courseDesign);

    /**
     * 新增课程设计
     *
     * @param courseDesign 课程设计
     * @return 结果
     */
    public int insertCourseDesign(CourseDesign courseDesign);

    /**
     * 修改课程设计
     *
     * @param courseDesign 课程设计
     * @return 结果
     */
    public int updateCourseDesign(CourseDesign courseDesign);

    /**
     * 删除课程设计
     *
     * @param id 课程设计主键
     * @return 结果
     */
    public int deleteCourseDesignById(Long id);



    /**
     * 按阶段id选择课程设计
     *
     * @param stage 阶段
     * @return {@link List}<{@link CourseDesign}>
     */
    List<CourseDesign> selectCourseDesignBystageId(Long stage);


    /**
     * 删除非ids课程设计
     *
     * @param stage     阶段
     * @param updateIds 更新ID
     */

    void deleteCourseDesignByNotIds(@Param("stage") String stage,@Param("updateIds") List<Long> updateIds);

    @Delete("delete from ya_course_design_interview where cd_id=#{cdId}")
    void deleteCourseDesignByInterview(@Param("cdId") Long cdId);

    int insertCourseDesignInterview(@Param("cdId") Long cdId,@Param("interviewIdList") List<Long> interviewIdList);
}
